import os
import re
# '''
# # 读取文本文件
# with open('职业生涯规划.txt','r',encoding='utf-8') as input_file:
#     # pass # 完成某些工作
#     # 去掉所有空格另起文件
#     lwx_string = re.sub(pattern=r'双非青年',repl='',string=input_file.read())
#     # 去掉所有空格另起文件
#     lwx_string = re.sub(pattern=r'\s',repl='',string=lwx_string)
#     # 。号右边换一行，问号右边换两行
#     lwx_string = re.sub(pattern=r'([？。])',repl='\\1\n',string=lwx_string)
#     # A或Q左边换行
#     lwx_string = re.sub(pattern=r'([AQ])',repl='\n\\1',string=lwx_string)
    
#     lwx_string = re.sub(pattern=r'\d+\.',repl='',string=lwx_string)
    
#     # 创建一txt文件
#     with open('职业生涯规划_clean.txt','w+',encoding='utf-8') as output_file:
#         # 写入文本覆盖内容  
#         output_file.write(lwx_string)
#         print(lwx_string[0:30])
#     if os.path.exists('职业生涯规划_clean.txt'):
#         print('文件写入成功')
# '''
        
# 创建一个模式删除功能，在终端接受用户输入的_pattern,repl,string;返回删除后的字符串
if __name__ == '__main__':
    # 全文匹配与替换
    while True:
        # lwx_pattern = input("请输入要的match | string:")
        # lwx_repl = input("要换成:")
        # lwx_string = input('文件路径:')
        # 仅用一个空格分割输入
        # 输入示例: [pattern|string] [replace_pattern] [file_path]
        
        
        lwx_pattern, lwx_repl, lwx_string = input("[pattern|string] [replace_pattern] [file_path]").split('-')
        lwx_string = open(f'{lwx_string}','r',encoding='utf-8').read() # 只读并存储
        
        match = re.search(fr'{lwx_pattern}',lwx_string)
        # 三元运算
        lwx_string = f'\033[32m{lwx_string[match.start(): match.start()+30]}\033[0m' if match else 'No match found'
        
        lwx_string = re.sub(pattern=fr'{lwx_pattern}',
                             repl=fr'{lwx_repl}',
                             string=fr'{lwx_string}')

        # 写入文本覆盖内容  
        with open('output.txt','w+',encoding='utf-8') as output_file:
            # 换个颜色输出
            print("正在写入文本\n")
            output_file.write(lwx_string)
            # 换个颜色输出
            # 预览第一部分处理结果
            print('替换成功\n',
                  f'\033[32m{lwx_string[match.start(): match.start()+30] if match else "No match found"}\033[0m',
                  '....')
        if input('是否继续替换?[y/n]') == 'n':
            break
